return;
}
- if ( substr( $filename, 0, 6 ) === 'alias:' ) {
- // Supported alias formats:
- // - No deprecation warning: alias:MyNewClassName
- // - Deprecated in MediaWiki 1.1: alias:MyNewClassName?v=1.1
- // - Deprecated in MyExtension 1.1: alias:MyNewClassName?c=MyExtension&v=1.1
- $parts = explode( '?', substr( $filename, 6 ), 2 );
- $newClassName = $parts[0];
-
- // If necessary, this will make a recursive call to this function to
- // load the class using its actual, canonical name.
- class_alias( $newClassName, $className );
-
- if ( isset( $parts[1] ) && function_exists( 'wfDeprecated' ) ) {
- $info = wfCgiToArray( $parts[1] );
- $function = "name $className for class $newClassName";
- $version = isset( $info['v'] ) ? $info['v'] : false;
- $component = isset( $info['c'] ) ? $info['c'] : false;
-
- // https://github.com/facebook/hhvm/issues/1018
- $callerOffset = wfIsHHVM() ? 2 : 3;
- wfDeprecated( $function, $version, $component, $callerOffset );
- }
-
- return;
- }
-
# Make an absolute path, this improves performance by avoiding some stat calls
if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' ) {
global $IP;
'TestAutoloadedLocalClass' => __DIR__ . '/../data/autoloader/TestAutoloadedLocalClass.php',
'TestAutoloadedCamlClass' => __DIR__ . '/../data/autoloader/TestAutoloadedCamlClass.php',
'TestAutoloadedSerializedClass' => __DIR__ . '/../data/autoloader/TestAutoloadedSerializedClass.php',
- 'TestAutoloadedAliasedClass' => 'alias:TestAutoloadedAliasedClassNew',
- 'TestAutoloadedAliasedClassDeprecated' => 'alias:TestAutoloadedAliasedClassNew?v=1.1',
- 'TestAutoloadedAliasedClassNew' => __DIR__ . '/../data/autoloader/TestAutoloadedAliasedClassNew.php',
);
$this->setMwGlobals( 'wgAutoloadLocalClasses', $this->testLocalClasses + $wgAutoloadLocalClasses );
AutoLoader::resetAutoloadLocalClassesLower();
$expected = $wgAutoloadLocalClasses + $wgAutoloadClasses;
$actual = array();
- // Check aliases
- foreach ( $expected as $class => $file ) {
- if ( substr( $file, 0, 6 ) !== 'alias:' ) {
- // Not an alias, so should be an actual file
- $files[] = $file;
- } else {
- $newClass = substr( $file, 6, strcspn( $file, '?', 6 ) );
- if ( isset( $expected[$newClass] ) ) {
- if ( substr( $expected[$newClass], 0, 6 ) !== 'alias:' ) {
- // Alias pointing to an existing MediaWiki class
- $actual[$class] = $file;
- }
- }
- }
- }
-
- $files = array_unique( $files );
+ $files = array_unique( $expected );
foreach ( $files as $file ) {
// Only prefix $IP if it doesn't have it already.
$this->assertFalse( $uncerealized instanceof __PHP_Incomplete_Class,
"unserialize() can load classes case-insensitively." );
}
-
- function testAliasedClass() {
- $this->assertSame( 'TestAutoloadedAliasedClassNew',
- get_class( new TestAutoloadedAliasedClass ) );
- }
-
- function testAliasedClassDeprecated() {
- wfSuppressWarnings();
- $this->assertSame( 'TestAutoloadedAliasedClassNew',
- get_class( new TestAutoloadedAliasedClassDeprecated ) );
- wfRestoreWarnings();
- }
}